import { defineConfig } from 'vite'
import { fileURLToPath, URL } from 'node:url';
import react from '@vitejs/plugin-react-swc'
import legacy from '@vitejs/plugin-legacy';
import obfuscatorPlugin from "vite-plugin-javascript-obfuscator";
import { visualizer } from 'rollup-plugin-visualizer';
export default defineConfig(() => {
    return {
        plugins: [react(),
        visualizer({ open: true })
            //     legacy({
            //     targets: ['defaults', 'not IE 11']
            // })
            // obfuscatorPlugin({
            //     options: {
            //         // your javascript-obfuscator options
            //         compact: true,
            //         controlFlowFlattening: true,
            //         // ...  [See more options](https://github.com/javascript-obfuscator/javascript-obfuscator)
            //     },
            // })
        ],
        base: './',
        server: {
            host: '0.0.0.0',
            port: 3520,
            open: true
        },
        resolve: {
            alias: {
                '~': fileURLToPath(new URL('./src', import.meta.url)),
                '~api': fileURLToPath(new URL('./src/store', import.meta.url)),
                '~store': fileURLToPath(new URL('./src/store', import.meta.url)),
                '@Components': fileURLToPath(new URL('./src/components', import.meta.url)),
                '@Styles': fileURLToPath(new URL('./src/assets/styles', import.meta.url)),
                '@Utils': fileURLToPath(new URL('./src/assets/utils', import.meta.url)),
                '@Api': fileURLToPath(new URL('./src/api', import.meta.url)),
                '@contents': fileURLToPath(new URL('./src/contents', import.meta.url)),
                '@tools': fileURLToPath(new URL('./src/tools', import.meta.url)),
            },
        },
        build: {
            rollupOptions: {
                output: {
                    format: 'iife'
                },
                input: {
                    // content: './src/index.html',
                    main: './src/main.jsx',
                    // main2: './src/main2.js'
                },

                // output: {
                //     manualChunks: () => 'everything.js', // 将所有代码打包到一个文件中
                // }

            },
            outDir: './build',
            // assetsDir: 'chrome-mv3-dev'
            assetsDir: 'chrome-mv3-prod'
        }
    }
})